home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Nebula 2
/
Nebula Two.iso
/
SourceCode
/
GameKit
/
Headers
/
gamekit
/
PlayerUpView.h
< prev
next >
Wrap
Text File
|
1995-06-12
|
3KB
|
66 lines
// PlayerUpView is used to track one-ups. (i.e. the number of extra
// "men" left.) It handles displaying them on the screen, too; use
// is fairly obvious:
// 1. Initialize: -initFrame, -setImage:, -setImageFrame:
// -setMargin: (optional method, default is 2.0)
// 2. Reset at start of game play with -setNumUp:
// 3. When an extra "man" is needed, call -decNumUp: If it
// returns YES, then you got one. If it returns NO
// then there are no more left and the game is over.
// 4. If the player is to be awarded a bonus "extra man"
// then call -incNumUp: to add one extra "man".
// If you set up an appropriate BonusTacker (or subclass),
// send it to the PlayerUpView, and then make the
// PlayerUpView one of the delegates to the ScoreKeeper,
// then it will automatically give extra one-ups at the
// right times.
// 5. If you need to know how many are left, then use
// the -numUp method to find out. (If you need to
// inc by more than one, for example, use a combo
// like: [playerUpView setNumUp:([playerUpView numUp] + x)];
// 6. Set the delegate outlet if you want notification of bonus
// men, added/subtracted men, and so on. (Trigger sounds
// and music off the notification, etc.)
// Note that the NeXT archiving works via -read: and -write: so that
// this object can be on a palette.
#import <appkit/appkit.h>
@interface PlayerUpView:View
{
id image; // an NXImage of the one up
id delegate; // any object...
id extraManBonusTracker; // a BonusTracker...when to give xtra men
int numUp; // how many chances the player has left
NXCoord margin; // amount of white space to leave when rendering
NXRect imageFrame; // where the one up image is located in "image"
}
// before using this object, you should use the following methods, in
// this order, to set things up.
- initFrame:(const NXRect *)frm; // for initting a view
- setImage:anImage; // bitmap image of a oneUp
- setMargin:(NXCoord)newMargin; // white space around displayed oneUps
- setImageFrame:(NXRect *)aRect; // where the oneUp pic is in the image
- setNumUp:(int)newNumUp; // set # of oneUps; use at start of game play
// -setNumUp: and the next three methods are for use by the game.
- incNumUp:sender; // add a oneUp (awarded bonuses or whatever)
- (int)numUp; // how many oneUps are left
- (BOOL)decNumUp:sender; // use a oneUp & update view
- drawSelf:(NXRect *)rects :(int)rectCount; // render the view
- read:(NXTypedStream *)stream; // for archiving & palettes
- write:(NXTypedStream *)stream; // for archiving & palettes
// give away extra guys; we act as delegate to ScoreKeeper and wait for
// the score to cross critical points...
- scoreChangedFrom:(int)oldScore to:(int)newScore;
- setExtraManBonusTracker:tracker;
- setDelegate:anObject;
- extraManBonusTracker;
- delegate;
@end